import java.util.Arrays;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DiasSemana {
	public static void main(String[] args) {
		int year = 2015;
		int month = Calendar.FEBRUARY;
		// int domingo = Calendar.SUNDAY;
		Calendar cal = new GregorianCalendar(year, month, 1);
		// El primer dia por defecto es el lunes. Se cambia al domingo para que
		// coincida con las constantes
		cal.setFirstDayOfWeek(Calendar.SUNDAY);
		// Calcular el numero de semanas del mes.
		int maxWeeknumber = cal.getActualMaximum(Calendar.WEEK_OF_MONTH);
		// diasMes tendra maxWeeknumber filas x 7 columnas (do,lu,..sa)
		String[][] diasMes = new String[maxWeeknumber + 1][7];
		System.out.println("Semanas del mes: " + maxWeeknumber);
		
		for (int d = 1; d <= cal.getActualMaximum(Calendar.DAY_OF_MONTH); d++) {
			cal.set(Calendar.DAY_OF_MONTH, d);
			// La semana actual
			int w = cal.get(Calendar.WEEK_OF_MONTH);
			System.out.println("Semana actual: " + w);
			// El dia de la semana.
			int dw = cal.get(Calendar.DAY_OF_WEEK);
			diasMes[w - 1][dw - 1] = "" + cal.get(Calendar.DAY_OF_MONTH);
		}

		for (int w = 0; w < maxWeeknumber; w++) {
			System.out.println(Arrays.asList(diasMes[w]));
		}
	}
	
}
